【shell】用 grep 查找包含字符串的文件

您所在的位置:网站首页 grep查找文件内容包含1和 s 【shell】用 grep 查找包含字符串的文件

【shell】用 grep 查找包含字符串的文件

2023-03-24 12:14| 来源: 网络整理| 查看: 265

目录

​​即可即用​​

​​grep  匹配多个关键字​​

​​与find的不同​​

​​grep检索文件内容详解​​

​​grep  不起作用?过滤了还是显示​​

​​更多过滤​​

​​搜索包含[指定字符串]的文件​​

​​搜索包含[特定单词]的文件​​

​​显示包含[特定文本]的文件​​

​​大小写不敏感的搜索​​

​​搜索时包含/排除指定文件​​

​​搜索时排除指定目录​​

​​显示包含搜索字符串的行号​​

​​寻找不包含[指定字符串]的文件​​

​​只取第一行、取前n行、取前n字节、取末尾n行、不显示前n行/后n行​​

​​取匹配命中的前后n行​​

即可即用grep  匹配多个关键字

1、 grep ‘字符串’

cat manpath.config | grep 'MANPATH'

2、 反向匹配

cat manpath.config| grep -v 'MANPATH'

3、 匹配多个关键字之一

grep -E "word1|word2|word3" file.txt

4、 反向匹配多个关键字之一

grep -vE "word1|word2|word3" file.txt

5、同时满足多个关键字

grep word1 file.txt | grep word2 |grep word3

与find的不同

find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 

 grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

grep检索文件内容详解

https://www.jb51.net/article/127783.htm

(1) 指定文件类型:

find -type f -name '*.h' | xargs grep "hello"

(2) 排除java和c文件类型

grep "hello" -nR --exclude=*.{java,c}

(3) 排除lib目录查找文件init.c

find -name lib -prune -o -name init.c

(4)grep 转义字符“\” 查找

(5)非递归搜索

grep -s "stretch "/etc/*-s 选项会在发现不存在或者不能读取的文件时隐藏报错信息。

(5)递归搜索

grep -R "stretch "/etc/*

grep -rEn perl /usr/bin/grep -Rl "3306" * 这句可以显示在哪个文件里包含3306grep -REn "3306" * 可以显现文件名,行数R 表示递归,就是在当前目录找不到就去子目录找E 表示把文件名也打印出来n 打印此行在文件中的位置

(6)显示行号

grep -Rni bash /etc/*.conf

https://www.linuxprobe.com/grep-find-file.html

grep  不起作用?过滤了还是显示

service --status-all | grep network,即使我将其通过管道传送到​​grep​​以仅将其限制为”network”字符串,它仍然列出所有服务

解决办法:

service --status-all |& grep network

https://ubuntuqa.com/article/10818.html

Stdout的编号为1,stderr的编号为2。默认情况下,重定向操作符(如​​>​​,​​|​​和​​



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3